package mq

import (
	"context"
	"cyiris/core/protocol/gpb"

	"github.com/streadway/amqp"
)

/**
 * 继承 Context，自定义的属性和方法注意和父类的关系
 */
type Context struct {
	context.Context
	TaskMsg *gpb.Message
	Msg     *amqp.Delivery
	Params  map[string]interface{} //异步请求参数
}

func NewContext(ctx context.Context, taskMsg *gpb.Message, msg *amqp.Delivery) *Context {
	return &Context{
		Context: ctx,
		TaskMsg: taskMsg,
		Msg:     msg,
		Params:  map[string]interface{}{},
	}
}

//设置异步请求参数
func (ctx *Context) SetParam(key string, val interface{}) {
	ctx.Params[key] = val
}

//获取异步请求参数
func (ctx *Context) GetParam(key string) interface{} {
	return ctx.Params[key]
}
